#ifndef _RC5_H_
#define _RC5_H_
#include <stdint.h>

/**
 * @brief rc5   crypt function, Group size is 64bit, w/r/b = 32/12/16. 
 *              encrypt is input 8 bytes plaintext, and output 8 bytes ciphertext. 
 *              decrypt is the same as encrypt  (detail see source demo)
 *              if you want to encrypt or decrypt long string , achieve padding(ISO,PKCS7...), encode mode(ECB,CBC...) and base64 by yourself
 * 
 * @param key   key length must be 16bytes
 * @param pt    plaintext   it must have 8 bytes size
 * @param ct    ciphertext  it must have 8 bytes size
 */
void rc5_init(unsigned char *key); 
void rc5_encrypt(uint32_t *pt, uint32_t *ct);
void rc5_decrypt(uint32_t *ct, uint32_t *pt);

#endif  /* _RC5_H_ */